home *** CD-ROM | disk | FTP | other *** search
- UNIT HiLo;
- (**) INTERFACE (**)
- FUNCTION SwapN(B : Byte) : Byte;
- FUNCTION HiN(B : Byte) : Byte;
- FUNCTION LoN(B : Byte) : Byte;
-
- FUNCTION SwapW(L : LongInt) : LongInt;
- FUNCTION HiW(L : LongInt) : Word;
- FUNCTION LoW(L : LongInt) : Word;
-
- FUNCTION WordFromB(H, L : Byte) : Word;
- FUNCTION LongFromW(H, L : Word) : LongInt;
-
- (**) IMPLEMENTATION (**)
- FUNCTION SwapN(B : Byte) : Byte; Assembler;
- ASM
- MOV AL, B {byte in AL}
- MOV AH, AL {now in AH too}
- MOV CL, 4 {set up to shift by 4}
- SHL AL, CL {AL has low nibble -> high}
- SHR AH, CL {AH has high nibble -> low}
- ADD AL, AH {combine them}
- END;
-
- FUNCTION HiN(B : Byte) : Byte; Assembler;
- ASM
- MOV AL, B
- MOV CL, 4
- SHR AL, CL
- END;
-
- FUNCTION LoN(B : Byte) : Byte; Assembler;
- ASM
- MOV AL, B
- AND AL, 0Fh
- END;
-
- FUNCTION SwapW(L : LongInt) : LongInt; Assembler;
- ASM
- MOV AX, Word(L+2)
- MOV DX, Word(L)
- END;
-
- FUNCTION HiW(L : LongInt) : Word; Assembler;
- ASM
- MOV AX, Word(L+2)
- END;
-
- FUNCTION LoW(L : LongInt) : Word; Assembler;
- ASM
- MOV AX, Word(L);
- END;
-
- FUNCTION WordFromB(H, L : Byte) : Word; Assembler;
- ASM
- MOV AH, H
- MOV AL, L
- END;
-
- FUNCTION LongFromW(H, L : Word) : LongInt; Assembler;
- ASM
- MOV DX, H
- MOV AX, L
- END;
- END.